/*
* 
* Fichier source projet intel Acceler8 sous license GNU GPL v3.
* Voir http://www.gnu.org/copyleft/gpl.html pour plus d'informations
* La license est egalement disponible dans le repertoire /doc
* 
* Cree le : mardi 15 novembre 2011 à 15 : 18.
* Auteurs : Axel MOINET et Arnaud DURAND.
* 
* Nom de fichier : filtrecalculsoussequence.h
* Chemin du fichier : ./src/classes/filtrecalculsoussequence/filtrecalculsoussequence.h
* 
* Description :
* 
*/

#ifndef FILTRE_CALCUL_SOUS_SEQUENCE_H_INCLUDED
#define FILTRE_CALCUL_SOUS_SEQUENCE_H_INCLUDED

#include "tbb/pipeline.h"
#include "tbb/task.h"
#include "tbb/task_scheduler_init.h"
#include "tbb/concurrent_vector.h"
#include "../taskpsumsmax/taskpsumsmax.h"
#include "../taskssumpmax/taskssumpmax.h"
#include "../threadprincipal/threadprincipal.h"
#include <iostream>

class filtreCalculSousSequence : public tbb::filter {

public :
	filtreCalculSousSequence(threadPrincipal *p_thread);
	~filtreCalculSousSequence();
	int launchCalcul();
	int computeM();
	int findAB();
	int compareResults();
	void* operator()(void* item);

private :
	int a, b, g, h, tabSize;

	tbb::concurrent_vector<int> *tabCgh;
	tbb::concurrent_vector<int> *psum;
	tbb::concurrent_vector<int> *smax;
	tbb::concurrent_vector<int> *ssum;
	tbb::concurrent_vector<int> *pmax;
	tbb::concurrent_vector<int> *M;

	threadPrincipal *thread;
};

#endif
